<?hh
// This tests the parser. The actual values are arbitrary.

enum Foo: int {
  callable = 0;
  trait = 2;
  extends = 3;
  implements = 4;
  static = 5;
  abstract = 6;
  final = 7;
  public = 8;
  protected = 9;
  private = 10;
  const = 11;
  enddeclare = 12;
  endfor = 13;
  endforeach = 14;
  endif = 15;
  endwhile = 16;
  and = 17;
  global = 18;
  goto = 19;
  instanceof = 20;
  insteadof = 21;
  interface = 22;
  namespace = 23;
  new = 24;
  or = 25;
  xor = 26;
  try = 27;
  use = 28;
  var = 29;
  exit = 30;
  list = 31;
  clone = 32;
  include = 33;
  include_once = 34;
  throw = 35;
  array = 36;
  print = 37;
  echo = 38;
  require = 39;
  require_once = 40;
  return = 41;
  else = 42;
  default = 44;
  break = 45;
  continue = 46;
  switch = 47;
  yield = 48;
  function = 49;
  if = 50;
  endswitch = 51;
  finally = 52;
  for = 53;
  foreach = 54;
  declare = 55;
  case = 56;
  do = 57;
  while = 58;
  as = 59;
  catch = 60;
  // die = 61;
  self = 62;
  parent = 63;
  unset = 64;
}
<<__EntryPoint>>
function main_entry(): void {
  echo Foo::callable;
  echo Foo::trait;
  echo Foo::extends;
  echo Foo::implements;
  echo Foo::static;
  echo Foo::abstract;
  echo Foo::final;
  echo Foo::public;
  echo Foo::protected;
  echo Foo::private;
  echo Foo::const;
  echo Foo::enddeclare;
  echo Foo::endfor;
  echo Foo::endforeach;
  echo Foo::endif;
  echo Foo::endwhile;
  echo Foo::and;
  echo Foo::global;
  echo Foo::goto;
  echo Foo::instanceof;
  echo Foo::insteadof;
  echo Foo::interface;
  echo Foo::namespace;
  echo Foo::new;
  echo Foo::or;
  echo Foo::xor;
  echo Foo::try;
  echo Foo::use;
  echo Foo::var;
  echo Foo::exit;
  echo Foo::list;
  echo Foo::clone;
  echo Foo::include;
  echo Foo::include_once;
  echo Foo::throw;
  echo Foo::array;
  echo Foo::print;
  echo Foo::echo;
  echo Foo::require;
  echo Foo::require_once;
  echo Foo::return;
  echo Foo::else;
  echo Foo::default;
  echo Foo::break;
  echo Foo::continue;
  echo Foo::switch;
  echo Foo::yield;
  echo Foo::function;
  echo Foo::if;
  echo Foo::endswitch;
  echo Foo::finally;
  echo Foo::for;
  echo Foo::foreach;
  echo Foo::declare;
  echo Foo::case;
  echo Foo::do;
  echo Foo::while;
  echo Foo::as;
  echo Foo::catch;
  // echo Foo::die;
  echo Foo::self;
  echo Foo::parent;
  echo Foo::unset;
  echo "Done\n";
}
